<?php
require_once   'qiniusdk.php';
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
defined('BASEPATH') OR exilocalImgt('No direct script access allowed');
/**
 * 上传文件
 */
class Qiniu
{

	public function addImgToQiniu($localImg,$serviceImg){

		// 需要填写你的 Access Key 和 Secret Key
		$accessKey = '6FDdb57C4SXqe3US1YpyVlc2yJSnBBpH7eR9oyhQ';
		$secretKey = 'SwgyvqjPFo1u1Xk4a4hFUpugfkkQPuOpekwVjL5J';

		// 构建鉴权对象
		$auth = new Auth($accessKey, $secretKey);

		// 要上传的空间
		$bucket = 'phpbase/';

		// 生成上传 Token
		$token = $auth->uploadToken($bucket);

		// 要上传文件的本地路径
		$filePath = $localImg;

		// 上传到七牛后保存的文件名
		$key = $serviceImg;

		// 初始化 UploadManager 对象并进行文件的上传。
		$uploadMgr = new UploadManager();

		// 调用 UploadManager 的 putFile 方法进行文件的上传。
		list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);

		if ($err !== null) {
		    return $err;
		} else {
		    return $ret;
		}

	}


	/*
	* 功能：循环检测并创建文件夹
	* 参数：$path 文件夹路径
	* 返回：
	*/
	function createDir($path){

		if (!file_exists($path)){
			$this->createDir(dirname($path));
			mkdir($path, 0777);
		}
	}

	//存储文件
	function saveFileByNameAndPath($name,$path){
		$fileType = $this->getFileType($_FILES[$name]['name']);

		$dir =  $path.date('Ym');
		$fileName = date('YmdHis').'.'.$fileType;
		$saveDir = $dir.'/'.$fileName;
		$this->createDir($dir);
		$dirName = $dir.'/'.$fileName;
		if(is_uploaded_file($_FILES[$name]['tmp_name'])){
			if(move_uploaded_file($_FILES[$name]['tmp_name'],$saveDir)){

			  //成功流程
			  $result = $this->addImgToQiniu($saveDir,'mz/mzupload/'.$dirName);
			  return $result;
			} else {
			  //报错流程
			  return 'error';
			}
		}

	}

	//存储文件
	function saveFileByNameAndPathArray($name,$i,$path){
		$fileType = $this->getFileType($_FILES[$name]['name'][$i]);
		$dir =  $path.date('Ym');
		$fileName = date('YmdHis').rand(10000,99999).'.'.$fileType;
		$saveDir = $dir.'/'.$fileName;
		$this->createDir($dir);
		$dirName = $dir.'/'.$fileName;
		if(is_uploaded_file($_FILES[$name]['tmp_name'][$i])){
			if(move_uploaded_file($_FILES[$name]['tmp_name'][$i],$saveDir)){
			  //成功流程
			  $result = $this->addImgToQiniu($saveDir,'mz/mzupload/'.$dirName);
			  return $result;
			} else {
			  //报错流程
			  return 'error';
			}
		}

	}


	//获得图片的格式，包括jpg,png,gif
	function getFileType($name)//获取图像文件类型
	{
		if (preg_match("/.(jpg|jpeg|gif|png|bmp|xls|csv|txt|apk|xlsx|mp4|mp3)$/i", $name, $matches)){
			$type = strtolower($matches[1]);
		}else{
			$type = "png";
		}
		return $type;
	}


}
?>
